import abc
import numpy as np
from typing import Set


class ShotsGenerator(metaclass=abc.ABCMeta):
    def get_shot(
            self,
            limit_remain: int,
            selected_shots: Set[int],
            **kwargs
    ) -> (np.ndarray, int) or None:
        raise NotImplementedError
